The Internet Protocol (IP) enables computer networks to communicate with one another. Computer networks often vary in various parameters, for example, transmission speed, Maximum Transmission Unit (MTU) or the like. In order to properly communicate, computer networks need to be aware and adapt to the restrictions of other networks with which they communicate.
IP packet fragmentation may occur when the length of the IP packet (payload and headers) exceeds the MTU of a link within a network or between networks. Routers and other internet devices are programmed to handle this situation by fragmenting the IP packet into smaller size frames that meet the MTU size. An outer IP header is typically re-created on all subsequent fragmented frames to allow the network equipment to determine which frames are fragments of the initial packet.
Conventionally, on IP tunneled connections, for example, Generic Routing Encapsulation (GRE), General Packet Radio Service Tunneling Protocol (GTP), or the like, there may be a requirement to load-balance traffic on the basis of the IP packet carried within the tunnel. This type of load balancing requires access to an inner IP header, which is typically part of the packet payload. However, fragmentation of the tunneled packet generally only re-creates the outer IP header on the fragmented frames. Therefore, the inner IP header, as part of the payload, would no longer be available on subsequent fragments of the packet. Without full information included on the fragmented frames, load-balancers that are situated within the tunnel endpoints and for their function are required to balance by the inner IP header, cannot forward non-first fragments to the correct destinations. Network functions behind the load-balancing function that require the full packet (including the full payload) may experience degraded functionality.
It is, therefore, desirable to provide an improved system and method for load balancing, and in particular, in the presence of the fragmented tunneled traffic.